import {fetch} from '../fetch'
import config from "@/config"

class CurrentUser {
  constructor() {
  }

  static login(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/login',
      method: 'post',
      params
    })
  }

  static logout(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/logout',
      method: 'post',
      params
    })
  }

  static registered(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/registered',
      method: 'post',
      params
    })
  }

  /**
   * 验证码
   * @param params
   * @returns {Promise | Promise<unknown>}
   */
  static captcha(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/images/captcha',
      method: 'post',
      params
    })
  }

  /**
   * 获取token信息，
   * @param params
   * @returns {Promise<unknown>}
   */
  static getUserByToken(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/getUserByToken',
      method: 'post',
      params
    })
  }

  /**
   * 默认获取当前用户的信息，传入对应的token信息，获取对应的用户信息
   * @param params
   * @returns {*}
   */
  static getUserDetailByToken(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/user/detail',
      method: 'post',
      params
    })
  }

  /**
   * 获取消息信息
   * @param params
   * @returns {Promise<unknown>}
   */
  static getMessage(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/getMessage',
      method: 'post',
      params
    })
  }

  /**
   * 获取消息正文信息
   * @param params
   * @returns {Promise<unknown>}
   */
  static getContentByMsgId(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/getContentByMsgId',
      method: 'post',
      params
    })
  }

  /**
   * 已读消息
   * @param params
   * @returns {Promise<unknown>}
   */
  static hasRead(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/hasRead',
      method: 'post',
      params
    })
  }

  /**
   * 是否删除已读消息
   * @param params
   * @returns {Promise<unknown>}
   */
  static removeRead(params) {
    return fetch({
      url: config.baseUrl.upmsPublic + '/removeRead',
      method: 'post',
      params
    })
  }

  static restoreTrash(params) {
    return fetch({
      url: config.baseUrl.adminSys + '/restoreTrash',
      method: 'post',
      params
    })
  }

  /**
   * 获取未读消息总数
   * @param params
   * @returns {Promise<unknown>}
   */
  static getUnreadCount(params) {
    return fetch({
      url: config.baseUrl.adminSys + '/transaction/list',
      method: 'post',
      params
    })
  }

  /**
   * 获取用户详情信息，包括路由信息
   * @param params
   * @returns {Promise<unknown>}
   */
  static searchUserDetailByToken() {
    return fetch({
      url: config.baseUrl.upmsPublic + '/user/detail',
      method: 'post',
      params
    })
  }

  static updateLanguage(params){
    return fetch({
      url: config.baseUrl.upmsPublic + '/update/language',
      method: 'post',
      params
    })
  }

  static resetPassword(params){
    return fetch({
      url: config.baseUrl.upmsPublic + '/reset/password',
      method: 'post',
      params
    })
  }

  static updatePassword(params){
    return fetch({
      url: config.baseUrl.upmsPublic + '/update/password',
      method: 'post',
      params
    })
  }

  static updateAvatar(params){
    return fetch({
      url: config.baseUrl.upmsPublic + '/update/avatar',
      method: 'post',
      params
    })
  }

  static updateTheme(params){
    return fetch({
      url: config.baseUrl.upmsPublic + '/update/theme',
      method: 'post',
      params
    })
  }

  static updateTab(params){
    return fetch({
      url: config.baseUrl.upmsPublic + '/update/tab',
      method: 'post',
      params
    })
  }

}

export default CurrentUser

